// Copyright (c) 2010, SMB SAAS Systems Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must  retain  the  above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form  must  reproduce the  above  copyright  notice,
//   this list of conditions  and  the  following  disclaimer in  the documentation
//   and/or other materials provided with the distribution.
//
// - Neither  the  name  of  the  SMB SAAS Systems Inc.  nor   the   names  of  its
//   contributors may be used to endorse or  promote  products  derived  from  this
//   software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED TO, THE IMPLIED
// WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR  PURPOSE  ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER  CAUSED AND ON
// ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.3053
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.3038.
// 
namespace dotPanel.Ecommerce.EnterpriseServer {
    using System.Diagnostics;
    using System.Web.Services;
    using System.ComponentModel;
    using System.Web.Services.Protocols;
    using System;
    using System.Xml.Serialization;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="ecStorefrontSoap", Namespace="http://tempuri.org/")]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(KeyValueBunchBase))]
    public partial class ecStorefront : Microsoft.Web.Services3.WebServicesClientProtocol {
        
        private System.Threading.SendOrPostCallback UsernameExistsOperationCompleted;
        
        private System.Threading.SendOrPostCallback AddContractOperationCompleted;
        
        private System.Threading.SendOrPostCallback SubmitCustomerOrderOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetContractInvoiceFormattedOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetContractAccountOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCheckoutFormParamsOperationCompleted;
        
        private System.Threading.SendOrPostCallback CompleteCheckoutOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductTypeControlOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetStorefrontProductsByTypeOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingPlanCyclesOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingPlanOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingPlanAddonsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingAddonCyclesOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductHighlightsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetTopLevelDomainCyclesOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetResellerPaymentMethodsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetContractPaymentMethodOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetHostingPlanQuotasOperationCompleted;
        
        private System.Threading.SendOrPostCallback CheckDomainOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetBaseCurrencyOperationCompleted;
        
        private System.Threading.SendOrPostCallback HasTopLeveDomainsInStockOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetStorefrontCategoriesOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetStorefrontCategoryOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetStorefrontPathOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetStorefrontTermsAndConditionsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetStorefrontSecurePaymentsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetStorefrontWelcomeMessageOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductsInCategoryOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetStorefrontProductOperationCompleted;
        
        /// <remarks/>
        public ecStorefront() {
            this.Url = "http://localhost:1625/ecStorefront.asmx";
        }
        
        /// <remarks/>
        public event UsernameExistsCompletedEventHandler UsernameExistsCompleted;
        
        /// <remarks/>
        public event AddContractCompletedEventHandler AddContractCompleted;
        
        /// <remarks/>
        public event SubmitCustomerOrderCompletedEventHandler SubmitCustomerOrderCompleted;
        
        /// <remarks/>
        public event GetContractInvoiceFormattedCompletedEventHandler GetContractInvoiceFormattedCompleted;
        
        /// <remarks/>
        public event GetContractAccountCompletedEventHandler GetContractAccountCompleted;
        
        /// <remarks/>
        public event GetCheckoutFormParamsCompletedEventHandler GetCheckoutFormParamsCompleted;
        
        /// <remarks/>
        public event CompleteCheckoutCompletedEventHandler CompleteCheckoutCompleted;
        
        /// <remarks/>
        public event GetProductTypeControlCompletedEventHandler GetProductTypeControlCompleted;
        
        /// <remarks/>
        public event GetStorefrontProductsByTypeCompletedEventHandler GetStorefrontProductsByTypeCompleted;
        
        /// <remarks/>
        public event GetHostingPlanCyclesCompletedEventHandler GetHostingPlanCyclesCompleted;
        
        /// <remarks/>
        public event GetHostingPlanCompletedEventHandler GetHostingPlanCompleted;
        
        /// <remarks/>
        public event GetHostingPlanAddonsCompletedEventHandler GetHostingPlanAddonsCompleted;
        
        /// <remarks/>
        public event GetHostingAddonCyclesCompletedEventHandler GetHostingAddonCyclesCompleted;
        
        /// <remarks/>
        public event GetProductHighlightsCompletedEventHandler GetProductHighlightsCompleted;
        
        /// <remarks/>
        public event GetTopLevelDomainCyclesCompletedEventHandler GetTopLevelDomainCyclesCompleted;
        
        /// <remarks/>
        public event GetResellerPaymentMethodsCompletedEventHandler GetResellerPaymentMethodsCompleted;
        
        /// <remarks/>
        public event GetContractPaymentMethodCompletedEventHandler GetContractPaymentMethodCompleted;
        
        /// <remarks/>
        public event GetHostingPlanQuotasCompletedEventHandler GetHostingPlanQuotasCompleted;
        
        /// <remarks/>
        public event CheckDomainCompletedEventHandler CheckDomainCompleted;
        
        /// <remarks/>
        public event GetBaseCurrencyCompletedEventHandler GetBaseCurrencyCompleted;
        
        /// <remarks/>
        public event HasTopLeveDomainsInStockCompletedEventHandler HasTopLeveDomainsInStockCompleted;
        
        /// <remarks/>
        public event GetStorefrontCategoriesCompletedEventHandler GetStorefrontCategoriesCompleted;
        
        /// <remarks/>
        public event GetStorefrontCategoryCompletedEventHandler GetStorefrontCategoryCompleted;
        
        /// <remarks/>
        public event GetStorefrontPathCompletedEventHandler GetStorefrontPathCompleted;
        
        /// <remarks/>
        public event GetStorefrontTermsAndConditionsCompletedEventHandler GetStorefrontTermsAndConditionsCompleted;
        
        /// <remarks/>
        public event GetStorefrontSecurePaymentsCompletedEventHandler GetStorefrontSecurePaymentsCompleted;
        
        /// <remarks/>
        public event GetStorefrontWelcomeMessageCompletedEventHandler GetStorefrontWelcomeMessageCompleted;
        
        /// <remarks/>
        public event GetProductsInCategoryCompletedEventHandler GetProductsInCategoryCompleted;
        
        /// <remarks/>
        public event GetStorefrontProductCompletedEventHandler GetStorefrontProductCompleted;
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/UsernameExists", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool UsernameExists(string username) {
            object[] results = this.Invoke("UsernameExists", new object[] {
                        username});
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginUsernameExists(string username, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("UsernameExists", new object[] {
                        username}, callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndUsernameExists(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void UsernameExistsAsync(string username) {
            this.UsernameExistsAsync(username, null);
        }
        
        /// <remarks/>
        public void UsernameExistsAsync(string username, object userState) {
            if ((this.UsernameExistsOperationCompleted == null)) {
                this.UsernameExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUsernameExistsOperationCompleted);
            }
            this.InvokeAsync("UsernameExists", new object[] {
                        username}, this.UsernameExistsOperationCompleted, userState);
        }
        
        private void OnUsernameExistsOperationCompleted(object arg) {
            if ((this.UsernameExistsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UsernameExistsCompleted(this, new UsernameExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/AddContract", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult AddContract(int resellerId, ContractAccount accountSettings) {
            object[] results = this.Invoke("AddContract", new object[] {
                        resellerId,
                        accountSettings});
            return ((GenericResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginAddContract(int resellerId, ContractAccount accountSettings, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("AddContract", new object[] {
                        resellerId,
                        accountSettings}, callback, asyncState);
        }
        
        /// <remarks/>
        public GenericResult EndAddContract(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult)(results[0]));
        }
        
        /// <remarks/>
        public void AddContractAsync(int resellerId, ContractAccount accountSettings) {
            this.AddContractAsync(resellerId, accountSettings, null);
        }
        
        /// <remarks/>
        public void AddContractAsync(int resellerId, ContractAccount accountSettings, object userState) {
            if ((this.AddContractOperationCompleted == null)) {
                this.AddContractOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddContractOperationCompleted);
            }
            this.InvokeAsync("AddContract", new object[] {
                        resellerId,
                        accountSettings}, this.AddContractOperationCompleted, userState);
        }
        
        private void OnAddContractOperationCompleted(object arg) {
            if ((this.AddContractCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddContractCompleted(this, new AddContractCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/SubmitCustomerOrder", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public OrderResult SubmitCustomerOrder(string contractId, OrderItem[] orderItems, KeyValueBunch extraArgs) {
            object[] results = this.Invoke("SubmitCustomerOrder", new object[] {
                        contractId,
                        orderItems,
                        extraArgs});
            return ((OrderResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginSubmitCustomerOrder(string contractId, OrderItem[] orderItems, KeyValueBunch extraArgs, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("SubmitCustomerOrder", new object[] {
                        contractId,
                        orderItems,
                        extraArgs}, callback, asyncState);
        }
        
        /// <remarks/>
        public OrderResult EndSubmitCustomerOrder(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((OrderResult)(results[0]));
        }
        
        /// <remarks/>
        public void SubmitCustomerOrderAsync(string contractId, OrderItem[] orderItems, KeyValueBunch extraArgs) {
            this.SubmitCustomerOrderAsync(contractId, orderItems, extraArgs, null);
        }
        
        /// <remarks/>
        public void SubmitCustomerOrderAsync(string contractId, OrderItem[] orderItems, KeyValueBunch extraArgs, object userState) {
            if ((this.SubmitCustomerOrderOperationCompleted == null)) {
                this.SubmitCustomerOrderOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSubmitCustomerOrderOperationCompleted);
            }
            this.InvokeAsync("SubmitCustomerOrder", new object[] {
                        contractId,
                        orderItems,
                        extraArgs}, this.SubmitCustomerOrderOperationCompleted, userState);
        }
        
        private void OnSubmitCustomerOrderOperationCompleted(object arg) {
            if ((this.SubmitCustomerOrderCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SubmitCustomerOrderCompleted(this, new SubmitCustomerOrderCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetContractInvoiceFormatted", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string GetContractInvoiceFormatted(string contractId, int invoiceId, string cultureName) {
            object[] results = this.Invoke("GetContractInvoiceFormatted", new object[] {
                        contractId,
                        invoiceId,
                        cultureName});
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetContractInvoiceFormatted(string contractId, int invoiceId, string cultureName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetContractInvoiceFormatted", new object[] {
                        contractId,
                        invoiceId,
                        cultureName}, callback, asyncState);
        }
        
        /// <remarks/>
        public string EndGetContractInvoiceFormatted(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void GetContractInvoiceFormattedAsync(string contractId, int invoiceId, string cultureName) {
            this.GetContractInvoiceFormattedAsync(contractId, invoiceId, cultureName, null);
        }
        
        /// <remarks/>
        public void GetContractInvoiceFormattedAsync(string contractId, int invoiceId, string cultureName, object userState) {
            if ((this.GetContractInvoiceFormattedOperationCompleted == null)) {
                this.GetContractInvoiceFormattedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetContractInvoiceFormattedOperationCompleted);
            }
            this.InvokeAsync("GetContractInvoiceFormatted", new object[] {
                        contractId,
                        invoiceId,
                        cultureName}, this.GetContractInvoiceFormattedOperationCompleted, userState);
        }
        
        private void OnGetContractInvoiceFormattedOperationCompleted(object arg) {
            if ((this.GetContractInvoiceFormattedCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetContractInvoiceFormattedCompleted(this, new GetContractInvoiceFormattedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetContractAccount", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public ContractAccount GetContractAccount(string contractId) {
            object[] results = this.Invoke("GetContractAccount", new object[] {
                        contractId});
            return ((ContractAccount)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetContractAccount(string contractId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetContractAccount", new object[] {
                        contractId}, callback, asyncState);
        }
        
        /// <remarks/>
        public ContractAccount EndGetContractAccount(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((ContractAccount)(results[0]));
        }
        
        /// <remarks/>
        public void GetContractAccountAsync(string contractId) {
            this.GetContractAccountAsync(contractId, null);
        }
        
        /// <remarks/>
        public void GetContractAccountAsync(string contractId, object userState) {
            if ((this.GetContractAccountOperationCompleted == null)) {
                this.GetContractAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetContractAccountOperationCompleted);
            }
            this.InvokeAsync("GetContractAccount", new object[] {
                        contractId}, this.GetContractAccountOperationCompleted, userState);
        }
        
        private void OnGetContractAccountOperationCompleted(object arg) {
            if ((this.GetContractAccountCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetContractAccountCompleted(this, new GetContractAccountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetCheckoutFormParams", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public CheckoutFormParams GetCheckoutFormParams(string contractId, int invoiceId, string methodName, KeyValueBunch options) {
            object[] results = this.Invoke("GetCheckoutFormParams", new object[] {
                        contractId,
                        invoiceId,
                        methodName,
                        options});
            return ((CheckoutFormParams)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetCheckoutFormParams(string contractId, int invoiceId, string methodName, KeyValueBunch options, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetCheckoutFormParams", new object[] {
                        contractId,
                        invoiceId,
                        methodName,
                        options}, callback, asyncState);
        }
        
        /// <remarks/>
        public CheckoutFormParams EndGetCheckoutFormParams(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((CheckoutFormParams)(results[0]));
        }
        
        /// <remarks/>
        public void GetCheckoutFormParamsAsync(string contractId, int invoiceId, string methodName, KeyValueBunch options) {
            this.GetCheckoutFormParamsAsync(contractId, invoiceId, methodName, options, null);
        }
        
        /// <remarks/>
        public void GetCheckoutFormParamsAsync(string contractId, int invoiceId, string methodName, KeyValueBunch options, object userState) {
            if ((this.GetCheckoutFormParamsOperationCompleted == null)) {
                this.GetCheckoutFormParamsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCheckoutFormParamsOperationCompleted);
            }
            this.InvokeAsync("GetCheckoutFormParams", new object[] {
                        contractId,
                        invoiceId,
                        methodName,
                        options}, this.GetCheckoutFormParamsOperationCompleted, userState);
        }
        
        private void OnGetCheckoutFormParamsOperationCompleted(object arg) {
            if ((this.GetCheckoutFormParamsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCheckoutFormParamsCompleted(this, new GetCheckoutFormParamsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CompleteCheckout", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public CheckoutResult CompleteCheckout(string contractId, int invoiceId, string methodName, CheckoutDetails details) {
            object[] results = this.Invoke("CompleteCheckout", new object[] {
                        contractId,
                        invoiceId,
                        methodName,
                        details});
            return ((CheckoutResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginCompleteCheckout(string contractId, int invoiceId, string methodName, CheckoutDetails details, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("CompleteCheckout", new object[] {
                        contractId,
                        invoiceId,
                        methodName,
                        details}, callback, asyncState);
        }
        
        /// <remarks/>
        public CheckoutResult EndCompleteCheckout(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((CheckoutResult)(results[0]));
        }
        
        /// <remarks/>
        public void CompleteCheckoutAsync(string contractId, int invoiceId, string methodName, CheckoutDetails details) {
            this.CompleteCheckoutAsync(contractId, invoiceId, methodName, details, null);
        }
        
        /// <remarks/>
        public void CompleteCheckoutAsync(string contractId, int invoiceId, string methodName, CheckoutDetails details, object userState) {
            if ((this.CompleteCheckoutOperationCompleted == null)) {
                this.CompleteCheckoutOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCompleteCheckoutOperationCompleted);
            }
            this.InvokeAsync("CompleteCheckout", new object[] {
                        contractId,
                        invoiceId,
                        methodName,
                        details}, this.CompleteCheckoutOperationCompleted, userState);
        }
        
        private void OnCompleteCheckoutOperationCompleted(object arg) {
            if ((this.CompleteCheckoutCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CompleteCheckoutCompleted(this, new CompleteCheckoutCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetProductTypeControl", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string GetProductTypeControl(int typeId, string controlKey) {
            object[] results = this.Invoke("GetProductTypeControl", new object[] {
                        typeId,
                        controlKey});
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetProductTypeControl(int typeId, string controlKey, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetProductTypeControl", new object[] {
                        typeId,
                        controlKey}, callback, asyncState);
        }
        
        /// <remarks/>
        public string EndGetProductTypeControl(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void GetProductTypeControlAsync(int typeId, string controlKey) {
            this.GetProductTypeControlAsync(typeId, controlKey, null);
        }
        
        /// <remarks/>
        public void GetProductTypeControlAsync(int typeId, string controlKey, object userState) {
            if ((this.GetProductTypeControlOperationCompleted == null)) {
                this.GetProductTypeControlOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductTypeControlOperationCompleted);
            }
            this.InvokeAsync("GetProductTypeControl", new object[] {
                        typeId,
                        controlKey}, this.GetProductTypeControlOperationCompleted, userState);
        }
        
        private void OnGetProductTypeControlOperationCompleted(object arg) {
            if ((this.GetProductTypeControlCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductTypeControlCompleted(this, new GetProductTypeControlCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetStorefrontProductsByType", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Product[] GetStorefrontProductsByType(int resellerId, int typeId) {
            object[] results = this.Invoke("GetStorefrontProductsByType", new object[] {
                        resellerId,
                        typeId});
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetStorefrontProductsByType(int resellerId, int typeId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetStorefrontProductsByType", new object[] {
                        resellerId,
                        typeId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Product[] EndGetStorefrontProductsByType(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public void GetStorefrontProductsByTypeAsync(int resellerId, int typeId) {
            this.GetStorefrontProductsByTypeAsync(resellerId, typeId, null);
        }
        
        /// <remarks/>
        public void GetStorefrontProductsByTypeAsync(int resellerId, int typeId, object userState) {
            if ((this.GetStorefrontProductsByTypeOperationCompleted == null)) {
                this.GetStorefrontProductsByTypeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStorefrontProductsByTypeOperationCompleted);
            }
            this.InvokeAsync("GetStorefrontProductsByType", new object[] {
                        resellerId,
                        typeId}, this.GetStorefrontProductsByTypeOperationCompleted, userState);
        }
        
        private void OnGetStorefrontProductsByTypeOperationCompleted(object arg) {
            if ((this.GetStorefrontProductsByTypeCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetStorefrontProductsByTypeCompleted(this, new GetStorefrontProductsByTypeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingPlanCycles", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingPlanCycle[] GetHostingPlanCycles(int resellerId, int productId) {
            object[] results = this.Invoke("GetHostingPlanCycles", new object[] {
                        resellerId,
                        productId});
            return ((HostingPlanCycle[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingPlanCycles(int resellerId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingPlanCycles", new object[] {
                        resellerId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingPlanCycle[] EndGetHostingPlanCycles(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingPlanCycle[])(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingPlanCyclesAsync(int resellerId, int productId) {
            this.GetHostingPlanCyclesAsync(resellerId, productId, null);
        }
        
        /// <remarks/>
        public void GetHostingPlanCyclesAsync(int resellerId, int productId, object userState) {
            if ((this.GetHostingPlanCyclesOperationCompleted == null)) {
                this.GetHostingPlanCyclesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingPlanCyclesOperationCompleted);
            }
            this.InvokeAsync("GetHostingPlanCycles", new object[] {
                        resellerId,
                        productId}, this.GetHostingPlanCyclesOperationCompleted, userState);
        }
        
        private void OnGetHostingPlanCyclesOperationCompleted(object arg) {
            if ((this.GetHostingPlanCyclesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingPlanCyclesCompleted(this, new GetHostingPlanCyclesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingPlan", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingPlan GetHostingPlan(int resellerId, int productId) {
            object[] results = this.Invoke("GetHostingPlan", new object[] {
                        resellerId,
                        productId});
            return ((HostingPlan)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingPlan(int resellerId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingPlan", new object[] {
                        resellerId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingPlan EndGetHostingPlan(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingPlan)(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingPlanAsync(int resellerId, int productId) {
            this.GetHostingPlanAsync(resellerId, productId, null);
        }
        
        /// <remarks/>
        public void GetHostingPlanAsync(int resellerId, int productId, object userState) {
            if ((this.GetHostingPlanOperationCompleted == null)) {
                this.GetHostingPlanOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingPlanOperationCompleted);
            }
            this.InvokeAsync("GetHostingPlan", new object[] {
                        resellerId,
                        productId}, this.GetHostingPlanOperationCompleted, userState);
        }
        
        private void OnGetHostingPlanOperationCompleted(object arg) {
            if ((this.GetHostingPlanCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingPlanCompleted(this, new GetHostingPlanCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingPlanAddons", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingAddon[] GetHostingPlanAddons(int resellerId, int planId) {
            object[] results = this.Invoke("GetHostingPlanAddons", new object[] {
                        resellerId,
                        planId});
            return ((HostingAddon[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingPlanAddons(int resellerId, int planId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingPlanAddons", new object[] {
                        resellerId,
                        planId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingAddon[] EndGetHostingPlanAddons(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingAddon[])(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingPlanAddonsAsync(int resellerId, int planId) {
            this.GetHostingPlanAddonsAsync(resellerId, planId, null);
        }
        
        /// <remarks/>
        public void GetHostingPlanAddonsAsync(int resellerId, int planId, object userState) {
            if ((this.GetHostingPlanAddonsOperationCompleted == null)) {
                this.GetHostingPlanAddonsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingPlanAddonsOperationCompleted);
            }
            this.InvokeAsync("GetHostingPlanAddons", new object[] {
                        resellerId,
                        planId}, this.GetHostingPlanAddonsOperationCompleted, userState);
        }
        
        private void OnGetHostingPlanAddonsOperationCompleted(object arg) {
            if ((this.GetHostingPlanAddonsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingPlanAddonsCompleted(this, new GetHostingPlanAddonsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingAddonCycles", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public HostingPlanCycle[] GetHostingAddonCycles(int resellerId, int addonId) {
            object[] results = this.Invoke("GetHostingAddonCycles", new object[] {
                        resellerId,
                        addonId});
            return ((HostingPlanCycle[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingAddonCycles(int resellerId, int addonId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingAddonCycles", new object[] {
                        resellerId,
                        addonId}, callback, asyncState);
        }
        
        /// <remarks/>
        public HostingPlanCycle[] EndGetHostingAddonCycles(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((HostingPlanCycle[])(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingAddonCyclesAsync(int resellerId, int addonId) {
            this.GetHostingAddonCyclesAsync(resellerId, addonId, null);
        }
        
        /// <remarks/>
        public void GetHostingAddonCyclesAsync(int resellerId, int addonId, object userState) {
            if ((this.GetHostingAddonCyclesOperationCompleted == null)) {
                this.GetHostingAddonCyclesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingAddonCyclesOperationCompleted);
            }
            this.InvokeAsync("GetHostingAddonCycles", new object[] {
                        resellerId,
                        addonId}, this.GetHostingAddonCyclesOperationCompleted, userState);
        }
        
        private void OnGetHostingAddonCyclesOperationCompleted(object arg) {
            if ((this.GetHostingAddonCyclesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingAddonCyclesCompleted(this, new GetHostingAddonCyclesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetProductHighlights", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string[] GetProductHighlights(int resellerId, int productId) {
            object[] results = this.Invoke("GetProductHighlights", new object[] {
                        resellerId,
                        productId});
            return ((string[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetProductHighlights(int resellerId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetProductHighlights", new object[] {
                        resellerId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public string[] EndGetProductHighlights(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string[])(results[0]));
        }
        
        /// <remarks/>
        public void GetProductHighlightsAsync(int resellerId, int productId) {
            this.GetProductHighlightsAsync(resellerId, productId, null);
        }
        
        /// <remarks/>
        public void GetProductHighlightsAsync(int resellerId, int productId, object userState) {
            if ((this.GetProductHighlightsOperationCompleted == null)) {
                this.GetProductHighlightsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductHighlightsOperationCompleted);
            }
            this.InvokeAsync("GetProductHighlights", new object[] {
                        resellerId,
                        productId}, this.GetProductHighlightsOperationCompleted, userState);
        }
        
        private void OnGetProductHighlightsOperationCompleted(object arg) {
            if ((this.GetProductHighlightsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductHighlightsCompleted(this, new GetProductHighlightsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetTopLevelDomainCycles", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public DomainNameCycle[] GetTopLevelDomainCycles(int resellerId, int productId) {
            object[] results = this.Invoke("GetTopLevelDomainCycles", new object[] {
                        resellerId,
                        productId});
            return ((DomainNameCycle[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetTopLevelDomainCycles(int resellerId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetTopLevelDomainCycles", new object[] {
                        resellerId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public DomainNameCycle[] EndGetTopLevelDomainCycles(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((DomainNameCycle[])(results[0]));
        }
        
        /// <remarks/>
        public void GetTopLevelDomainCyclesAsync(int resellerId, int productId) {
            this.GetTopLevelDomainCyclesAsync(resellerId, productId, null);
        }
        
        /// <remarks/>
        public void GetTopLevelDomainCyclesAsync(int resellerId, int productId, object userState) {
            if ((this.GetTopLevelDomainCyclesOperationCompleted == null)) {
                this.GetTopLevelDomainCyclesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetTopLevelDomainCyclesOperationCompleted);
            }
            this.InvokeAsync("GetTopLevelDomainCycles", new object[] {
                        resellerId,
                        productId}, this.GetTopLevelDomainCyclesOperationCompleted, userState);
        }
        
        private void OnGetTopLevelDomainCyclesOperationCompleted(object arg) {
            if ((this.GetTopLevelDomainCyclesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetTopLevelDomainCyclesCompleted(this, new GetTopLevelDomainCyclesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetResellerPaymentMethods", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public PaymentMethod[] GetResellerPaymentMethods(int resellerId) {
            object[] results = this.Invoke("GetResellerPaymentMethods", new object[] {
                        resellerId});
            return ((PaymentMethod[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetResellerPaymentMethods(int resellerId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetResellerPaymentMethods", new object[] {
                        resellerId}, callback, asyncState);
        }
        
        /// <remarks/>
        public PaymentMethod[] EndGetResellerPaymentMethods(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((PaymentMethod[])(results[0]));
        }
        
        /// <remarks/>
        public void GetResellerPaymentMethodsAsync(int resellerId) {
            this.GetResellerPaymentMethodsAsync(resellerId, null);
        }
        
        /// <remarks/>
        public void GetResellerPaymentMethodsAsync(int resellerId, object userState) {
            if ((this.GetResellerPaymentMethodsOperationCompleted == null)) {
                this.GetResellerPaymentMethodsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetResellerPaymentMethodsOperationCompleted);
            }
            this.InvokeAsync("GetResellerPaymentMethods", new object[] {
                        resellerId}, this.GetResellerPaymentMethodsOperationCompleted, userState);
        }
        
        private void OnGetResellerPaymentMethodsOperationCompleted(object arg) {
            if ((this.GetResellerPaymentMethodsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetResellerPaymentMethodsCompleted(this, new GetResellerPaymentMethodsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetContractPaymentMethod", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public PaymentMethod GetContractPaymentMethod(string contractId, string methodName) {
            object[] results = this.Invoke("GetContractPaymentMethod", new object[] {
                        contractId,
                        methodName});
            return ((PaymentMethod)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetContractPaymentMethod(string contractId, string methodName, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetContractPaymentMethod", new object[] {
                        contractId,
                        methodName}, callback, asyncState);
        }
        
        /// <remarks/>
        public PaymentMethod EndGetContractPaymentMethod(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((PaymentMethod)(results[0]));
        }
        
        /// <remarks/>
        public void GetContractPaymentMethodAsync(string contractId, string methodName) {
            this.GetContractPaymentMethodAsync(contractId, methodName, null);
        }
        
        /// <remarks/>
        public void GetContractPaymentMethodAsync(string contractId, string methodName, object userState) {
            if ((this.GetContractPaymentMethodOperationCompleted == null)) {
                this.GetContractPaymentMethodOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetContractPaymentMethodOperationCompleted);
            }
            this.InvokeAsync("GetContractPaymentMethod", new object[] {
                        contractId,
                        methodName}, this.GetContractPaymentMethodOperationCompleted, userState);
        }
        
        private void OnGetContractPaymentMethodOperationCompleted(object arg) {
            if ((this.GetContractPaymentMethodCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetContractPaymentMethodCompleted(this, new GetContractPaymentMethodCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetHostingPlanQuotas", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public KeyValueBunch GetHostingPlanQuotas(int resellerId, int planId) {
            object[] results = this.Invoke("GetHostingPlanQuotas", new object[] {
                        resellerId,
                        planId});
            return ((KeyValueBunch)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetHostingPlanQuotas(int resellerId, int planId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetHostingPlanQuotas", new object[] {
                        resellerId,
                        planId}, callback, asyncState);
        }
        
        /// <remarks/>
        public KeyValueBunch EndGetHostingPlanQuotas(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((KeyValueBunch)(results[0]));
        }
        
        /// <remarks/>
        public void GetHostingPlanQuotasAsync(int resellerId, int planId) {
            this.GetHostingPlanQuotasAsync(resellerId, planId, null);
        }
        
        /// <remarks/>
        public void GetHostingPlanQuotasAsync(int resellerId, int planId, object userState) {
            if ((this.GetHostingPlanQuotasOperationCompleted == null)) {
                this.GetHostingPlanQuotasOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetHostingPlanQuotasOperationCompleted);
            }
            this.InvokeAsync("GetHostingPlanQuotas", new object[] {
                        resellerId,
                        planId}, this.GetHostingPlanQuotasOperationCompleted, userState);
        }
        
        private void OnGetHostingPlanQuotasOperationCompleted(object arg) {
            if ((this.GetHostingPlanQuotasCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetHostingPlanQuotasCompleted(this, new GetHostingPlanQuotasCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/CheckDomain", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public CheckDomainResult CheckDomain(int resellerId, string domain, string tld) {
            object[] results = this.Invoke("CheckDomain", new object[] {
                        resellerId,
                        domain,
                        tld});
            return ((CheckDomainResult)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginCheckDomain(int resellerId, string domain, string tld, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("CheckDomain", new object[] {
                        resellerId,
                        domain,
                        tld}, callback, asyncState);
        }
        
        /// <remarks/>
        public CheckDomainResult EndCheckDomain(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((CheckDomainResult)(results[0]));
        }
        
        /// <remarks/>
        public void CheckDomainAsync(int resellerId, string domain, string tld) {
            this.CheckDomainAsync(resellerId, domain, tld, null);
        }
        
        /// <remarks/>
        public void CheckDomainAsync(int resellerId, string domain, string tld, object userState) {
            if ((this.CheckDomainOperationCompleted == null)) {
                this.CheckDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckDomainOperationCompleted);
            }
            this.InvokeAsync("CheckDomain", new object[] {
                        resellerId,
                        domain,
                        tld}, this.CheckDomainOperationCompleted, userState);
        }
        
        private void OnCheckDomainOperationCompleted(object arg) {
            if ((this.CheckDomainCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CheckDomainCompleted(this, new CheckDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetBaseCurrency", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string GetBaseCurrency(int resellerId) {
            object[] results = this.Invoke("GetBaseCurrency", new object[] {
                        resellerId});
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetBaseCurrency(int resellerId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetBaseCurrency", new object[] {
                        resellerId}, callback, asyncState);
        }
        
        /// <remarks/>
        public string EndGetBaseCurrency(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void GetBaseCurrencyAsync(int resellerId) {
            this.GetBaseCurrencyAsync(resellerId, null);
        }
        
        /// <remarks/>
        public void GetBaseCurrencyAsync(int resellerId, object userState) {
            if ((this.GetBaseCurrencyOperationCompleted == null)) {
                this.GetBaseCurrencyOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBaseCurrencyOperationCompleted);
            }
            this.InvokeAsync("GetBaseCurrency", new object[] {
                        resellerId}, this.GetBaseCurrencyOperationCompleted, userState);
        }
        
        private void OnGetBaseCurrencyOperationCompleted(object arg) {
            if ((this.GetBaseCurrencyCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetBaseCurrencyCompleted(this, new GetBaseCurrencyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/HasTopLeveDomainsInStock", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool HasTopLeveDomainsInStock(int resellerId) {
            object[] results = this.Invoke("HasTopLeveDomainsInStock", new object[] {
                        resellerId});
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginHasTopLeveDomainsInStock(int resellerId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("HasTopLeveDomainsInStock", new object[] {
                        resellerId}, callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndHasTopLeveDomainsInStock(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void HasTopLeveDomainsInStockAsync(int resellerId) {
            this.HasTopLeveDomainsInStockAsync(resellerId, null);
        }
        
        /// <remarks/>
        public void HasTopLeveDomainsInStockAsync(int resellerId, object userState) {
            if ((this.HasTopLeveDomainsInStockOperationCompleted == null)) {
                this.HasTopLeveDomainsInStockOperationCompleted = new System.Threading.SendOrPostCallback(this.OnHasTopLeveDomainsInStockOperationCompleted);
            }
            this.InvokeAsync("HasTopLeveDomainsInStock", new object[] {
                        resellerId}, this.HasTopLeveDomainsInStockOperationCompleted, userState);
        }
        
        private void OnHasTopLeveDomainsInStockOperationCompleted(object arg) {
            if ((this.HasTopLeveDomainsInStockCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.HasTopLeveDomainsInStockCompleted(this, new HasTopLeveDomainsInStockCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetStorefrontCategories", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Category[] GetStorefrontCategories(int resellerId, int parentId) {
            object[] results = this.Invoke("GetStorefrontCategories", new object[] {
                        resellerId,
                        parentId});
            return ((Category[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetStorefrontCategories(int resellerId, int parentId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetStorefrontCategories", new object[] {
                        resellerId,
                        parentId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Category[] EndGetStorefrontCategories(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Category[])(results[0]));
        }
        
        /// <remarks/>
        public void GetStorefrontCategoriesAsync(int resellerId, int parentId) {
            this.GetStorefrontCategoriesAsync(resellerId, parentId, null);
        }
        
        /// <remarks/>
        public void GetStorefrontCategoriesAsync(int resellerId, int parentId, object userState) {
            if ((this.GetStorefrontCategoriesOperationCompleted == null)) {
                this.GetStorefrontCategoriesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStorefrontCategoriesOperationCompleted);
            }
            this.InvokeAsync("GetStorefrontCategories", new object[] {
                        resellerId,
                        parentId}, this.GetStorefrontCategoriesOperationCompleted, userState);
        }
        
        private void OnGetStorefrontCategoriesOperationCompleted(object arg) {
            if ((this.GetStorefrontCategoriesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetStorefrontCategoriesCompleted(this, new GetStorefrontCategoriesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetStorefrontCategory", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Category GetStorefrontCategory(int resellerId, int categoryId) {
            object[] results = this.Invoke("GetStorefrontCategory", new object[] {
                        resellerId,
                        categoryId});
            return ((Category)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetStorefrontCategory(int resellerId, int categoryId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetStorefrontCategory", new object[] {
                        resellerId,
                        categoryId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Category EndGetStorefrontCategory(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Category)(results[0]));
        }
        
        /// <remarks/>
        public void GetStorefrontCategoryAsync(int resellerId, int categoryId) {
            this.GetStorefrontCategoryAsync(resellerId, categoryId, null);
        }
        
        /// <remarks/>
        public void GetStorefrontCategoryAsync(int resellerId, int categoryId, object userState) {
            if ((this.GetStorefrontCategoryOperationCompleted == null)) {
                this.GetStorefrontCategoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStorefrontCategoryOperationCompleted);
            }
            this.InvokeAsync("GetStorefrontCategory", new object[] {
                        resellerId,
                        categoryId}, this.GetStorefrontCategoryOperationCompleted, userState);
        }
        
        private void OnGetStorefrontCategoryOperationCompleted(object arg) {
            if ((this.GetStorefrontCategoryCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetStorefrontCategoryCompleted(this, new GetStorefrontCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetStorefrontPath", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Category[] GetStorefrontPath(int resellerId, int categoryId) {
            object[] results = this.Invoke("GetStorefrontPath", new object[] {
                        resellerId,
                        categoryId});
            return ((Category[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetStorefrontPath(int resellerId, int categoryId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetStorefrontPath", new object[] {
                        resellerId,
                        categoryId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Category[] EndGetStorefrontPath(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Category[])(results[0]));
        }
        
        /// <remarks/>
        public void GetStorefrontPathAsync(int resellerId, int categoryId) {
            this.GetStorefrontPathAsync(resellerId, categoryId, null);
        }
        
        /// <remarks/>
        public void GetStorefrontPathAsync(int resellerId, int categoryId, object userState) {
            if ((this.GetStorefrontPathOperationCompleted == null)) {
                this.GetStorefrontPathOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStorefrontPathOperationCompleted);
            }
            this.InvokeAsync("GetStorefrontPath", new object[] {
                        resellerId,
                        categoryId}, this.GetStorefrontPathOperationCompleted, userState);
        }
        
        private void OnGetStorefrontPathOperationCompleted(object arg) {
            if ((this.GetStorefrontPathCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetStorefrontPathCompleted(this, new GetStorefrontPathCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetStorefrontTermsAndConditions", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string GetStorefrontTermsAndConditions(int resellerId) {
            object[] results = this.Invoke("GetStorefrontTermsAndConditions", new object[] {
                        resellerId});
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetStorefrontTermsAndConditions(int resellerId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetStorefrontTermsAndConditions", new object[] {
                        resellerId}, callback, asyncState);
        }
        
        /// <remarks/>
        public string EndGetStorefrontTermsAndConditions(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void GetStorefrontTermsAndConditionsAsync(int resellerId) {
            this.GetStorefrontTermsAndConditionsAsync(resellerId, null);
        }
        
        /// <remarks/>
        public void GetStorefrontTermsAndConditionsAsync(int resellerId, object userState) {
            if ((this.GetStorefrontTermsAndConditionsOperationCompleted == null)) {
                this.GetStorefrontTermsAndConditionsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStorefrontTermsAndConditionsOperationCompleted);
            }
            this.InvokeAsync("GetStorefrontTermsAndConditions", new object[] {
                        resellerId}, this.GetStorefrontTermsAndConditionsOperationCompleted, userState);
        }
        
        private void OnGetStorefrontTermsAndConditionsOperationCompleted(object arg) {
            if ((this.GetStorefrontTermsAndConditionsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetStorefrontTermsAndConditionsCompleted(this, new GetStorefrontTermsAndConditionsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetStorefrontSecurePayments", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool GetStorefrontSecurePayments(int resellerId) {
            object[] results = this.Invoke("GetStorefrontSecurePayments", new object[] {
                        resellerId});
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetStorefrontSecurePayments(int resellerId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetStorefrontSecurePayments", new object[] {
                        resellerId}, callback, asyncState);
        }
        
        /// <remarks/>
        public bool EndGetStorefrontSecurePayments(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void GetStorefrontSecurePaymentsAsync(int resellerId) {
            this.GetStorefrontSecurePaymentsAsync(resellerId, null);
        }
        
        /// <remarks/>
        public void GetStorefrontSecurePaymentsAsync(int resellerId, object userState) {
            if ((this.GetStorefrontSecurePaymentsOperationCompleted == null)) {
                this.GetStorefrontSecurePaymentsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStorefrontSecurePaymentsOperationCompleted);
            }
            this.InvokeAsync("GetStorefrontSecurePayments", new object[] {
                        resellerId}, this.GetStorefrontSecurePaymentsOperationCompleted, userState);
        }
        
        private void OnGetStorefrontSecurePaymentsOperationCompleted(object arg) {
            if ((this.GetStorefrontSecurePaymentsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetStorefrontSecurePaymentsCompleted(this, new GetStorefrontSecurePaymentsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetStorefrontWelcomeMessage", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string GetStorefrontWelcomeMessage(int resellerId) {
            object[] results = this.Invoke("GetStorefrontWelcomeMessage", new object[] {
                        resellerId});
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetStorefrontWelcomeMessage(int resellerId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetStorefrontWelcomeMessage", new object[] {
                        resellerId}, callback, asyncState);
        }
        
        /// <remarks/>
        public string EndGetStorefrontWelcomeMessage(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void GetStorefrontWelcomeMessageAsync(int resellerId) {
            this.GetStorefrontWelcomeMessageAsync(resellerId, null);
        }
        
        /// <remarks/>
        public void GetStorefrontWelcomeMessageAsync(int resellerId, object userState) {
            if ((this.GetStorefrontWelcomeMessageOperationCompleted == null)) {
                this.GetStorefrontWelcomeMessageOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStorefrontWelcomeMessageOperationCompleted);
            }
            this.InvokeAsync("GetStorefrontWelcomeMessage", new object[] {
                        resellerId}, this.GetStorefrontWelcomeMessageOperationCompleted, userState);
        }
        
        private void OnGetStorefrontWelcomeMessageOperationCompleted(object arg) {
            if ((this.GetStorefrontWelcomeMessageCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetStorefrontWelcomeMessageCompleted(this, new GetStorefrontWelcomeMessageCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetProductsInCategory", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Product[] GetProductsInCategory(int resellerId, int categoryId) {
            object[] results = this.Invoke("GetProductsInCategory", new object[] {
                        resellerId,
                        categoryId});
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetProductsInCategory(int resellerId, int categoryId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetProductsInCategory", new object[] {
                        resellerId,
                        categoryId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Product[] EndGetProductsInCategory(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public void GetProductsInCategoryAsync(int resellerId, int categoryId) {
            this.GetProductsInCategoryAsync(resellerId, categoryId, null);
        }
        
        /// <remarks/>
        public void GetProductsInCategoryAsync(int resellerId, int categoryId, object userState) {
            if ((this.GetProductsInCategoryOperationCompleted == null)) {
                this.GetProductsInCategoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductsInCategoryOperationCompleted);
            }
            this.InvokeAsync("GetProductsInCategory", new object[] {
                        resellerId,
                        categoryId}, this.GetProductsInCategoryOperationCompleted, userState);
        }
        
        private void OnGetProductsInCategoryOperationCompleted(object arg) {
            if ((this.GetProductsInCategoryCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductsInCategoryCompleted(this, new GetProductsInCategoryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetStorefrontProduct", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Product GetStorefrontProduct(int resellerId, int productId) {
            object[] results = this.Invoke("GetStorefrontProduct", new object[] {
                        resellerId,
                        productId});
            return ((Product)(results[0]));
        }
        
        /// <remarks/>
        public System.IAsyncResult BeginGetStorefrontProduct(int resellerId, int productId, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetStorefrontProduct", new object[] {
                        resellerId,
                        productId}, callback, asyncState);
        }
        
        /// <remarks/>
        public Product EndGetStorefrontProduct(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((Product)(results[0]));
        }
        
        /// <remarks/>
        public void GetStorefrontProductAsync(int resellerId, int productId) {
            this.GetStorefrontProductAsync(resellerId, productId, null);
        }
        
        /// <remarks/>
        public void GetStorefrontProductAsync(int resellerId, int productId, object userState) {
            if ((this.GetStorefrontProductOperationCompleted == null)) {
                this.GetStorefrontProductOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetStorefrontProductOperationCompleted);
            }
            this.InvokeAsync("GetStorefrontProduct", new object[] {
                        resellerId,
                        productId}, this.GetStorefrontProductOperationCompleted, userState);
        }
        
        private void OnGetStorefrontProductOperationCompleted(object arg) {
            if ((this.GetStorefrontProductCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetStorefrontProductCompleted(this, new GetStorefrontProductCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        public new void CancelAsync(object userState) {
            base.CancelAsync(userState);
        }
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void UsernameExistsCompletedEventHandler(object sender, UsernameExistsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UsernameExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal UsernameExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void AddContractCompletedEventHandler(object sender, AddContractCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddContractCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal AddContractCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public GenericResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void SubmitCustomerOrderCompletedEventHandler(object sender, SubmitCustomerOrderCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SubmitCustomerOrderCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal SubmitCustomerOrderCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public OrderResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((OrderResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetContractInvoiceFormattedCompletedEventHandler(object sender, GetContractInvoiceFormattedCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetContractInvoiceFormattedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetContractInvoiceFormattedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetContractAccountCompletedEventHandler(object sender, GetContractAccountCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetContractAccountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetContractAccountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public ContractAccount Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((ContractAccount)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetCheckoutFormParamsCompletedEventHandler(object sender, GetCheckoutFormParamsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCheckoutFormParamsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCheckoutFormParamsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public CheckoutFormParams Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((CheckoutFormParams)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void CompleteCheckoutCompletedEventHandler(object sender, CompleteCheckoutCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class CompleteCheckoutCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal CompleteCheckoutCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public CheckoutResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((CheckoutResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetProductTypeControlCompletedEventHandler(object sender, GetProductTypeControlCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProductTypeControlCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProductTypeControlCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetStorefrontProductsByTypeCompletedEventHandler(object sender, GetStorefrontProductsByTypeCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetStorefrontProductsByTypeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetStorefrontProductsByTypeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Product[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Product[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingPlanAddonsCompletedEventHandler(object sender, GetHostingPlanAddonsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingPlanAddonsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingPlanAddonsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public HostingAddon[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((HostingAddon[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetResellerPaymentMethodsCompletedEventHandler(object sender, GetResellerPaymentMethodsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetResellerPaymentMethodsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetResellerPaymentMethodsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public PaymentMethod[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((PaymentMethod[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetContractPaymentMethodCompletedEventHandler(object sender, GetContractPaymentMethodCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetContractPaymentMethodCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetContractPaymentMethodCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public PaymentMethod Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((PaymentMethod)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetHostingPlanQuotasCompletedEventHandler(object sender, GetHostingPlanQuotasCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetHostingPlanQuotasCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetHostingPlanQuotasCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public KeyValueBunch Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((KeyValueBunch)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void CheckDomainCompletedEventHandler(object sender, CheckDomainCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class CheckDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal CheckDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public CheckDomainResult Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((CheckDomainResult)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetBaseCurrencyCompletedEventHandler(object sender, GetBaseCurrencyCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetBaseCurrencyCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetBaseCurrencyCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void HasTopLeveDomainsInStockCompletedEventHandler(object sender, HasTopLeveDomainsInStockCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class HasTopLeveDomainsInStockCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal HasTopLeveDomainsInStockCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetStorefrontCategoriesCompletedEventHandler(object sender, GetStorefrontCategoriesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetStorefrontCategoriesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetStorefrontCategoriesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Category[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Category[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetStorefrontCategoryCompletedEventHandler(object sender, GetStorefrontCategoryCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetStorefrontCategoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetStorefrontCategoryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Category Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Category)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetStorefrontPathCompletedEventHandler(object sender, GetStorefrontPathCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetStorefrontPathCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetStorefrontPathCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Category[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Category[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetStorefrontTermsAndConditionsCompletedEventHandler(object sender, GetStorefrontTermsAndConditionsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetStorefrontTermsAndConditionsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetStorefrontTermsAndConditionsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetStorefrontSecurePaymentsCompletedEventHandler(object sender, GetStorefrontSecurePaymentsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetStorefrontSecurePaymentsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetStorefrontSecurePaymentsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetStorefrontWelcomeMessageCompletedEventHandler(object sender, GetStorefrontWelcomeMessageCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetStorefrontWelcomeMessageCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetStorefrontWelcomeMessageCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetProductsInCategoryCompletedEventHandler(object sender, GetProductsInCategoryCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProductsInCategoryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProductsInCategoryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Product[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Product[])(this.results[0]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    public delegate void GetStorefrontProductCompletedEventHandler(object sender, GetStorefrontProductCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetStorefrontProductCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetStorefrontProductCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Product Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Product)(this.results[0]));
            }
        }
    }
}
